package _02datastructure
/*
列表的使用
 */

//看似数组默认就是ArrayList
def list = [1, 2, 31, -9, -99]//=ArrayList
println list.class //class java.util.ArrayList
//添加元素
/*list.add(99)
list.leftShift(7)
list << 19
//删除操作
//list.remove((Object)1)//按照元素删除
list.removeAt(0)
list.removeElement(99)
println list.toListString()
println list - [19]*/

Collections.sort(list)//排序
println list

//自定义排序(传入一个闭包)
Comparator msc = { a, b -> a == b ? 0 : Math.abs(a) < Math.abs(b) ? -1 : 1 }
Collections.sort(list, msc)
println list
//groovy还提供list自身排序的方法而不需要引用Collections类
list.sort()//
//同样可以使用闭包
list.sort { a1, a2 -> a1 == a2 ? 0 : a1 > a2 ? -1 : 1 }
println list

//按照字符串长度排序
names = ["abc", "fa", "xxxxx", "x"]
names.sort { it.size() }
println names

/*
//数组
def array = [1, 2] as int[]
int[] arr2 = [1, 2, 3]//强类型定义
*/
//查找
println list.find { it % 2 == 0 }
//list中每个元素都为偶数
println list.every { it % 2 == 0 }
println list.max { Math.abs(it) }//可以传入闭包，找到绝对值最大的数
//统计函数
//统计有多少奇数
println "有${list.count { it % 2 != 0 }}个奇数"
